﻿using System.ComponentModel.DataAnnotations.Schema;
using PmSadis.Models.Abstract;
using System;
using System.ComponentModel.DataAnnotations;

namespace PmSadis.Models.Abstract
{
    /// <summary>
    /// Контракт
    /// </summary>
    [MetadataType(typeof(ContractMetadata))]
    public abstract class Contract : IRedactModel
    {
        /// <summary>
        /// Идентификатор контракта
        /// </summary>
        public int ContractId { get; set; }

        /// <summary>
        /// Наименование контракта
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Дата создания
        /// </summary>
        public DateTime DateCreate { get; set; }

        /// <summary>
        /// Дата последнего редактирования
        /// </summary>
        public DateTime DateUpdate { get; set; }
    }

    class ContractMetadata
    {
        /// <summary>
        /// Идентификатор контракта
        /// </summary>
        [Key]
        public int ContractId { get; set; }

        /// <summary>
        /// Наименование контракта
        /// </summary>
        [Column("CONTRACT_NAME")]
        [Required]
        public string Name { get; set; }

        /// <summary>
        /// Дата создания
        /// </summary>
        [Column("DATE_CREATE")]
        public DateTime DateCreate { get; set; }

        /// <summary>
        /// Дата последнего редактирования
        /// </summary>
        [Column("DATE_UPDATE")]
        public DateTime DateUpdate { get; set; }
    }
}
